package org.jeecg.modules.demo.soSettlement.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: so_settlement
 * @Author: jeecg-boot
 * @Date:   2021-12-15
 * @Version: V1.0
 */
@Data
@TableName("so_settlement")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="so_settlement对象", description="so_settlement")
public class SoSettlementVo implements Serializable, Comparable<SoSettlementVo> {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private String id;
	/**仓库编码*/
	@Excel(name = "仓库编码", width = 15)
    @ApiModelProperty(value = "仓库编码")
    @Dict(dicCode ="store_house")
    private String whNum;
	/**质检单号*/
	@Excel(name = "质检单号", width = 15)
    @ApiModelProperty(value = "质检单号")
    private String soqNo;
	/**销售结算单号*/
	@Excel(name = "销售结算单号", width = 15)
    @ApiModelProperty(value = "销售结算单号")
    private String sosNo;
	/**结算总量*/
	@Excel(name = "结算总量", width = 15)
    @ApiModelProperty(value = "结算总量")
    private BigDecimal sosTotal;
	/**结算单价*/
	@Excel(name = "结算单价", width = 15)
    @ApiModelProperty(value = "结算单价")
    private BigDecimal sosPrice;
	/**结算总价*/
	@Excel(name = "结算总价", width = 15)
    @ApiModelProperty(value = "结算总价")
    private BigDecimal sosAmount;
	/**不含税总价*/
	@Excel(name = "不含税总价", width = 15)
    @ApiModelProperty(value = "不含税总价")
    private BigDecimal sosNotax;
	/**编制人*/
	@Excel(name = "编制人", width = 15)
    @ApiModelProperty(value = "编制人")
    private String sosStaff;
	/**编制时间*/
	@Excel(name = "编制时间", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "编制时间")
    private Date sosCdate;
	/**createTime*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "createTime")
    private Date createTime;
	/**买受人单位名称*/
	@Excel(name = "买受人单位名称", width = 15)
    @ApiModelProperty(value = "买受人单位名称")
    private String maisdwmc;
	/**出卖人选择单位名称*/
	@Excel(name = "出卖人选择单位名称", width = 15)
    @ApiModelProperty(value = "出卖人选择单位名称")
    private String chumdwmc;
    /**订单状态（0：未审，1：已审，2：已关闭）*/
    @Excel(name = "订单状态（0：未审，1：已审，2：已关闭）", width = 15)
    @ApiModelProperty(value = "订单状态（0：未审，1：已审，2：已关闭）")
    private Integer soStatus;
    /**是否已生成发票单（0：否，1：是）*/
    @Excel(name = "是否已生成发票单（0：否，1：是）", width = 15)
    @ApiModelProperty(value = "是否已生成发票单（0：否，1：是）")
    private Integer isFpd;
    /**删除状态（0：未删，1：已删）*/
    @Excel(name = "删除状态（0：未删，1：已删）", width = 15)
    @ApiModelProperty(value = "删除状态（0：未删，1：已删）")
    private Integer isDelete;
    /**无税单价*/
    @Excel(name = "无税单价", width = 15)
    @ApiModelProperty(value = "无税单价")
    private BigDecimal wsdj;
    /**无税金额*/
    @Excel(name = "无税金额", width = 15)
    @ApiModelProperty(value = "无税金额")
    private BigDecimal wsje;
    /**含税单价*/
    @Excel(name = "含税单价", width = 15)
    @ApiModelProperty(value = "含税单价")
    private BigDecimal hsdj;
    /**含税金额*/
    @Excel(name = "含税金额", width = 15)
    @ApiModelProperty(value = "含税金额")
    private BigDecimal hsje;
    /**税率*/
    @Excel(name = "税率", width = 15)
    @ApiModelProperty(value = "税率")
    @Dict(dicCode = "tax_rate")
    private BigDecimal sl;
    /**审核人*/
    @Excel(name = "审核人", width = 15)
    @ApiModelProperty(value = "审核人")
    private String shName;
    /**审核时间*/
    @Excel(name = "审核时间", width = 15)
    @ApiModelProperty(value = "审核时间")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date shTime;
    /**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
    /**扣吨*/
    @Excel(name = "扣吨", width = 15)
    @ApiModelProperty(value = "扣吨")
    private BigDecimal kouton;
    /**合同基价*/
    @Excel(name = "合同基价", width = 15)
    @ApiModelProperty(value = "合同基价")
    private BigDecimal htjjia;
    /**收益*/
    @Excel(name = "收益", width = 15)
    @ApiModelProperty(value = "收益")
    private BigDecimal shouyi;
    /**其他调整价*/
    @Excel(name = "其他调整价", width = 15)
    @ApiModelProperty(value = "其他调整价")
    private BigDecimal adjust;
    /**质检指标*/
    @Excel(name = "质检指标", width = 15)
    @ApiModelProperty(value = "质检指标")
    private String realzb;
    /**质量指标JSON*/
    @Excel(name = "质量指标JSON", width = 15)
    @ApiModelProperty(value = "质量指标JSON")
    private String zhilzbjson;
    /**质量指标*/
    @Excel(name = "质量指标", width = 15)
    @ApiModelProperty(value = "质量指标")
    private String target;
    /**部门*/
    @Excel(name = "部门", width = 15)
    @ApiModelProperty(value = "部门")
    @Dict(dictTable = "sys_depart",dicCode ="id",dicText="depart_name")
    private String dept;
    /**合同编号*/
    @Excel(name = "合同编号", width = 15)
    @ApiModelProperty(value = "合同编号")
    private String soConNo;
    /**发热量*/
    @Excel(name = "发热量", width = 15)
    @ApiModelProperty(value = "发热量")
    private BigDecimal qoCal;
    /**收入单号*/
    @Excel(name = "收入单号", width = 15)
    @ApiModelProperty(value = "收入单号")
    private String soSrNo;
    /**合同总量*/
    @Excel(name = "合同总量", width = 15)
    @ApiModelProperty(value = "合同总量")
    private BigDecimal sosNum;
    /**合同发热量*/
    @Excel(name = "合同发热量", width = 15)
    @ApiModelProperty(value = "合同发热量")
    private BigDecimal sosCal;
    /**客户*/
    @Excel(name = "客户", width = 15)
    @ApiModelProperty(value = "客户")
    private String soCustom;
    /**开发票数量*/
    @Excel(name = "开发票数量", width = 15)
    @ApiModelProperty(value = "开发票数量")
    private BigDecimal fpsl;
    /**项目*/
    @Excel(name = "项目", width = 15)
    @ApiModelProperty(value = "项目")
    @Dict(dictTable = "pj_project",dicCode ="id",dicText="pj_name")
    private String project;
    /**存货名称*/
    @Excel(name = "存货名称", width = 15)
    @ApiModelProperty(value = "存货名称")
    private String prdName;
    /**税额*/
    @Excel(name = "税额", width = 15)
    @ApiModelProperty(value = "税额")
    private BigDecimal psTax;
    /**销售订单号*/
    @Excel(name = "销售订单号", width = 15)
    @ApiModelProperty(value = "销售订单号")
    private String soNo;
    /**质量奖罚金*/
    @Excel(name = "质量奖罚金", width = 15)
    @ApiModelProperty(value = "质量奖罚金")
    private BigDecimal zljfJine;
    /**盈亏吨*/
    @Excel(name = "盈亏吨", width = 15)
    @ApiModelProperty(value = "盈亏吨")
    private BigDecimal ykNum;
    /**已开票金额*/
    @Excel(name = "已开票金额", width = 15)
    @ApiModelProperty(value = "已开票金额")
    private BigDecimal ykpJine;
    /**未开票金额--实际是结算单的剩余可开票金额，不要与预开发票的剩余可开票金额混淆！*/
    @Excel(name = "未开票金额", width = 15)
    @ApiModelProperty(value = "未开票金额")
    private BigDecimal wkpJine;
    /**附件*/
    @Excel(name = "附件", width = 15)
    @ApiModelProperty(value = "附件")
    private String fj;
    /**资金占用费*/
    @Excel(name = "资金占用费", width = 15)
    @ApiModelProperty(value = "资金占用费")
    private BigDecimal zjzyf;
    /**贴现费用*/
    @Excel(name = "贴现费用", width = 15)
    @ApiModelProperty(value = "贴现费用")
    private BigDecimal txfy;
    /**税差*/
    @Excel(name = "税差", width = 15)
    @ApiModelProperty(value = "税差")
    private BigDecimal shuicha;
    /**租户id*/
    @Excel(name = "租户id", width = 15)
    @ApiModelProperty(value = "租户id")
    private Integer tenantId;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**机构编码*/
    @ApiModelProperty(value = "机构编码")
    private String sysOrgCode;


    private BigDecimal shouru;
    private BigDecimal maoli;
    private BigDecimal chengben;
    private String month;
    private BigDecimal xsje;
    private BigDecimal tiexian;
    private BigDecimal zijin;
    private BigDecimal caigft;
    private BigDecimal xiaosft;
    private BigDecimal yingshou;
    private BigDecimal yingfu;
    private String kehu;



    @Override
    public int compareTo(SoSettlementVo o) {
        return o.getCreateTime().compareTo(this.createTime);
    }
}
